YES 1.707
↳ HASKELL
↳ BR
((nub :: [Ordering] -> [Ordering]) :: [Ordering] -> [Ordering]) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||
nub :: Eq a => [a] -> [a]
|
import qualified List import qualified Prelude |
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
((nub :: [Ordering] -> [Ordering]) :: [Ordering] -> [Ordering]) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||
nub :: Eq a => [a] -> [a]
|
import qualified List import qualified Prelude |
nub' [] vw = [] nub' (x : xs) ls
| x `elem` ls
= nub' xs ls | otherwise
= x : nub' xs (x : ls)
nub' [] vw = nub'3 [] vw nub' (x : xs) ls = nub'2 (x : xs) ls
nub'0 x xs ls True = x : nub' xs (x : ls)
nub'1 x xs ls True = nub' xs ls nub'1 x xs ls False = nub'0 x xs ls otherwise
nub'2 (x : xs) ls = nub'1 x xs ls (x `elem` ls)
nub'3 [] vw = [] nub'3 wv ww = nub'2 wv ww
undefined
| False
= undefined
undefined = undefined1
undefined0 True = undefined
undefined1 = undefined0 False
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
((nub :: [Ordering] -> [Ordering]) :: [Ordering] -> [Ordering]) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||||||||||||||||||||
nub :: Eq a => [a] -> [a]
|
import qualified List import qualified Prelude |
nub' l [] where
nub' [] vw = nub'3 [] vw nub' (x : xs) ls = nub'2 (x : xs) ls
nub'0 x xs ls True = x : nub' xs (x : ls)
nub'1 x xs ls True = nub' xs ls nub'1 x xs ls False = nub'0 x xs ls otherwise
nub'2 (x : xs) ls = nub'1 x xs ls (x `elem` ls)
nub'3 [] vw = [] nub'3 wv ww = nub'2 wv ww
nubNub' [] vw = nubNub'3 [] vw nubNub' (x : xs) ls = nubNub'2 (x : xs) ls
nubNub'2 (x : xs) ls = nubNub'1 x xs ls (x `elem` ls)
nubNub'1 x xs ls True = nubNub' xs ls nubNub'1 x xs ls False = nubNub'0 x xs ls otherwise
nubNub'3 [] vw = [] nubNub'3 wv ww = nubNub'2 wv ww
nubNub'0 x xs ls True = x : nubNub' xs (x : ls)
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
(nub :: [Ordering] -> [Ordering]) |
import qualified Maybe import qualified Prelude |
|||||||||
nub :: Eq a => [a] -> [a]
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
import qualified List import qualified Prelude |
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
↳ QDP
↳ DependencyGraphProof
new_nubNub'10(wx97, wx98, wx99, wx100, True, wx102, bb) → new_nubNub'(wx98, wx99, wx100, bb)
new_nubNub'10(wx97, wx98, wx99, wx100, False, :(wx1020, wx1021), bb) → new_nubNub'1(wx97, wx98, wx99, wx100, wx1020, wx1021, bb)
new_nubNub'11(wx5, wx6, :(wx70, wx71), bd) → new_nubNub'1(wx5, wx6, wx70, wx71, wx70, wx71, bd)
new_nubNub'(:(wx150, wx151), wx16, wx17, bc) → new_nubNub'11(wx150, wx151, :(wx16, wx17), bc)
new_nubNub'10(wx97, wx98, wx99, wx100, False, [], bb) → new_nubNub'(wx98, wx97, :(wx99, wx100), bb)
new_nubNub'11(wx5, wx6, [], bd) → new_nubNub'(wx6, wx5, [], bd)
new_nubNub'1(wx84, wx85, wx86, wx87, wx88, wx89, ba) → new_nubNub'10(wx84, wx85, wx86, wx87, new_esEs(wx84, wx88, ba), wx89, ba)
new_esEs(wx84, wx88, app(app(app(ty_@3, cb), cc), cd)) → error([])
new_esEs(wx84, wx88, ty_Double) → error([])
new_esEs(wx84, wx88, ty_Integer) → error([])
new_esEs(LT, LT, ty_Ordering) → True
new_esEs(LT, GT, ty_Ordering) → False
new_esEs(GT, LT, ty_Ordering) → False
new_esEs(wx84, wx88, app(ty_[], be)) → error([])
new_esEs(wx84, wx88, app(app(ty_@2, ce), cf)) → error([])
new_esEs(wx84, wx88, app(ty_Ratio, ca)) → error([])
new_esEs(wx84, wx88, ty_@0) → error([])
new_esEs(wx84, wx88, ty_Char) → error([])
new_esEs(wx84, wx88, ty_Bool) → error([])
new_esEs(LT, EQ, ty_Ordering) → False
new_esEs(EQ, LT, ty_Ordering) → False
new_esEs(wx84, wx88, app(app(ty_Either, bf), bg)) → error([])
new_esEs(wx84, wx88, ty_Float) → error([])
new_esEs(EQ, EQ, ty_Ordering) → True
new_esEs(wx84, wx88, app(ty_Maybe, bh)) → error([])
new_esEs(GT, GT, ty_Ordering) → True
new_esEs(EQ, GT, ty_Ordering) → False
new_esEs(GT, EQ, ty_Ordering) → False
new_esEs(wx84, wx88, ty_Int) → error([])
new_esEs(x0, x1, ty_Int)
new_esEs(x0, x1, app(app(ty_Either, x2), x3))
new_esEs(x0, x1, ty_Bool)
new_esEs(EQ, EQ, ty_Ordering)
new_esEs(x0, x1, ty_@0)
new_esEs(x0, x1, app(app(ty_@2, x2), x3))
new_esEs(x0, x1, ty_Float)
new_esEs(x0, x1, app(ty_[], x2))
new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs(GT, LT, ty_Ordering)
new_esEs(LT, GT, ty_Ordering)
new_esEs(x0, x1, app(ty_Ratio, x2))
new_esEs(x0, x1, app(ty_Maybe, x2))
new_esEs(x0, x1, ty_Char)
new_esEs(x0, x1, ty_Double)
new_esEs(LT, LT, ty_Ordering)
new_esEs(EQ, GT, ty_Ordering)
new_esEs(GT, EQ, ty_Ordering)
new_esEs(GT, GT, ty_Ordering)
new_esEs(x0, x1, ty_Integer)
new_esEs(LT, EQ, ty_Ordering)
new_esEs(EQ, LT, ty_Ordering)
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPSizeChangeProof
new_nubNub'10(wx97, wx98, wx99, wx100, True, wx102, bb) → new_nubNub'(wx98, wx99, wx100, bb)
new_nubNub'10(wx97, wx98, wx99, wx100, False, :(wx1020, wx1021), bb) → new_nubNub'1(wx97, wx98, wx99, wx100, wx1020, wx1021, bb)
new_nubNub'11(wx5, wx6, :(wx70, wx71), bd) → new_nubNub'1(wx5, wx6, wx70, wx71, wx70, wx71, bd)
new_nubNub'(:(wx150, wx151), wx16, wx17, bc) → new_nubNub'11(wx150, wx151, :(wx16, wx17), bc)
new_nubNub'10(wx97, wx98, wx99, wx100, False, [], bb) → new_nubNub'(wx98, wx97, :(wx99, wx100), bb)
new_nubNub'1(wx84, wx85, wx86, wx87, wx88, wx89, ba) → new_nubNub'10(wx84, wx85, wx86, wx87, new_esEs(wx84, wx88, ba), wx89, ba)
new_esEs(wx84, wx88, app(app(app(ty_@3, cb), cc), cd)) → error([])
new_esEs(wx84, wx88, ty_Double) → error([])
new_esEs(wx84, wx88, ty_Integer) → error([])
new_esEs(LT, LT, ty_Ordering) → True
new_esEs(LT, GT, ty_Ordering) → False
new_esEs(GT, LT, ty_Ordering) → False
new_esEs(wx84, wx88, app(ty_[], be)) → error([])
new_esEs(wx84, wx88, app(app(ty_@2, ce), cf)) → error([])
new_esEs(wx84, wx88, app(ty_Ratio, ca)) → error([])
new_esEs(wx84, wx88, ty_@0) → error([])
new_esEs(wx84, wx88, ty_Char) → error([])
new_esEs(wx84, wx88, ty_Bool) → error([])
new_esEs(LT, EQ, ty_Ordering) → False
new_esEs(EQ, LT, ty_Ordering) → False
new_esEs(wx84, wx88, app(app(ty_Either, bf), bg)) → error([])
new_esEs(wx84, wx88, ty_Float) → error([])
new_esEs(EQ, EQ, ty_Ordering) → True
new_esEs(wx84, wx88, app(ty_Maybe, bh)) → error([])
new_esEs(GT, GT, ty_Ordering) → True
new_esEs(EQ, GT, ty_Ordering) → False
new_esEs(GT, EQ, ty_Ordering) → False
new_esEs(wx84, wx88, ty_Int) → error([])
new_esEs(x0, x1, ty_Int)
new_esEs(x0, x1, app(app(ty_Either, x2), x3))
new_esEs(x0, x1, ty_Bool)
new_esEs(EQ, EQ, ty_Ordering)
new_esEs(x0, x1, ty_@0)
new_esEs(x0, x1, app(app(ty_@2, x2), x3))
new_esEs(x0, x1, ty_Float)
new_esEs(x0, x1, app(ty_[], x2))
new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs(GT, LT, ty_Ordering)
new_esEs(LT, GT, ty_Ordering)
new_esEs(x0, x1, app(ty_Ratio, x2))
new_esEs(x0, x1, app(ty_Maybe, x2))
new_esEs(x0, x1, ty_Char)
new_esEs(x0, x1, ty_Double)
new_esEs(LT, LT, ty_Ordering)
new_esEs(EQ, GT, ty_Ordering)
new_esEs(GT, EQ, ty_Ordering)
new_esEs(GT, GT, ty_Ordering)
new_esEs(x0, x1, ty_Integer)
new_esEs(LT, EQ, ty_Ordering)
new_esEs(EQ, LT, ty_Ordering)
From the DPs we obtained the following set of size-change graphs: